Field of the Disclosure
This disclosure relates to data processing apparatus and methods.
Description of the Related Art
The “background” description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description which may not otherwise qualify as prior art at the time of filing, are neither expressly or impliedly admitted as prior art against the present disclosure.
In some data processing apparatus there is a need to suspend operation of a particular application program in order to start running another, or to allow the data processing apparatus to be powered down. The suspend operation involves storing a copy of the contents of a working memory and, optionally, details of an internal processor state. Later, at a resume operation, the memory contents and processor state are retrieved and reinstated so that the original application can continue to be executed as before, with effect from the point at which it was suspended.
A technical problem relating to the design of a storage arrangement to hold the suspend data is how to achieve a rapid suspend operation and a rapid resume operation. One reason why speed is desirable is simply to provide convenient operation to the user. But a more subtle reason is that if the suspend and resume operations are carried out very quickly, the user might not even realise that they are taking place at all. In other words, if the suspend and resume operations are rapid and execute smoothly, they can give the impression of a capability to switch from one application to another without stopping execution of the first application, rather than suspending one application and resuming another by using the separately stored suspend data.
This disclosure provides data processing apparatus comprising: a processor having an internal state dependent upon execution of application program code by the processor, the processor being configured to generate display data relating to images to be displayed using the associated display in response to the execution of the program code and to buffer display data relating to a most recent period of execution of a currently executing application; a non-volatile data storage arrangement configured to store program code for one or more applications; a random access memory configured to store temporary data relating to a current operational state of program execution while the processor is executing the program code for the currently executing application; a non-volatile suspend data memory; and a data transfer controller configured, in response to a suspend instruction, to transfer data from the random access memory relating to the currently executing application, data relating to a current internal state of the processor and the buffered display data to the suspend data memory, and configured, in response to a resume instruction, to transfer data from the suspend data memory to the random access memory and to the processor so as to recreate the state of execution of an application at the time that the suspend instruction was executed, and to retrieve the display data relating to the resumed application from the suspend data memory, the processor causing the display to display information to the user based on the retrieved display data while the resume instruction is being completed.
The disclosure provides a separate non-volatile memory arrangement for storing suspend data, which in various embodiments can allow for a higher speed for the suspend and resume operations.
Further respective aspects and features of the disclosure are defined by the appended claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary, but not restrictive of, the present disclosure.